package com.tubi.innerclass4;

public class test4innerclass {


    /*
    匿名内部类
    本质上是一个特殊的局部内部类（定义在方法内部）
    前提需要一个接口或者类

    使用格式：
    new 类名/接口名（）{
        重写方法
    }
     */
    public static void main(String[] args) {
        InterImpl i = new InterImpl();
        i.show();

        //匿名内部类的理解： 将继承/实现，方法重写，创建对象，放到了一步进行
        new Inter(){
            @Override
            public void show() {
                System.out.println("匿名内部类");
            }
        }.show();


        Inter2 in2 = new Inter2() {
            @Override
            public void show1() {
                System.out.println("我是show1");
            }

            @Override
            public void show2() {
                System.out.println("我是show2");

            }
        };
        in2.show1();
        in2.show2();
    }
}


interface  Inter {   //接口
    //abstract 抽象的
    public abstract  void show();
}
interface Inter2 {
    void  show1();
    void  show2();
}
class InterImpl implements Inter {
    /*
    使用接口中的方法：
    1。创建接口
    2。创建实现类，通过 implements关键字去实现接口
    3。方法重写
    4。创建实现类对象
    5。调用重写后的方法

     */
    @Override
    public void show() {
        System.out.println("InterImpl1 ...  重写show方法");
    }
}